package com.ruoyi.inventory.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 存货管理对象 inventory_management
 * 
 * @author ruoyi
 * @date 2025-03-13
 */
public class InventoryManagement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 存货名称 */
    @Excel(name = "存货名称")
    private String inventoryName;

    /** 存货编号 */
    @Excel(name = "存货编号")
    private String inventoryNumber;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specificationModel;

    /** 存货类型ID */
    @Excel(name = "存货类型ID")
    private Long inventoryTypeId;

    /** 存货分类ID */
    @Excel(name = "存货分类ID")
    private Long inventoryCategoryId;

    /** 计价方式ID */
    @Excel(name = "计价方式ID")
    private Long pricingMethodId;

    /** 0启用 1禁用 */
    @Excel(name = "0启用 1禁用")
    private Integer status;

    /** 商品用途 */
    @Excel(name = "商品用途")
    private String productPurpose;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 是否支持多计量单位 */
    @Excel(name = "是否支持多计量单位")
    private Integer isSupportMultipleUnits;

    /** 计量单位ID */
    @Excel(name = "计量单位ID")
    private Long unitId;

    /** 采购单位ID */
    @Excel(name = "采购单位ID")
    private Long purchaseUnitId;

    /** 销售单位ID */
    @Excel(name = "销售单位ID")
    private Long salesUnitId;

    /** 库存单位ID */
    @Excel(name = "库存单位ID")
    private Long stockUnitId;

    /** 采购价 */
    private BigDecimal purchasePrice;

    /** 销售价 */
    private BigDecimal salesPrice;

    /** 成本价 */
    private BigDecimal costPrice;

    /** 最低库存 */
    @Excel(name = "最低库存")
    private Long minStock;

    /** 最高库存 */
    @Excel(name = "最高库存")
    private Long maxStock;

    /** 安全库存 */
    @Excel(name = "安全库存")
    private Long safetyStock;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setInventoryName(String inventoryName) 
    {
        this.inventoryName = inventoryName;
    }

    public String getInventoryName() 
    {
        return inventoryName;
    }
    public void setInventoryNumber(String inventoryNumber) 
    {
        this.inventoryNumber = inventoryNumber;
    }

    public String getInventoryNumber() 
    {
        return inventoryNumber;
    }
    public void setSpecificationModel(String specificationModel) 
    {
        this.specificationModel = specificationModel;
    }

    public String getSpecificationModel() 
    {
        return specificationModel;
    }
    public void setInventoryTypeId(Long inventoryTypeId) 
    {
        this.inventoryTypeId = inventoryTypeId;
    }

    public Long getInventoryTypeId() 
    {
        return inventoryTypeId;
    }
    public void setInventoryCategoryId(Long inventoryCategoryId) 
    {
        this.inventoryCategoryId = inventoryCategoryId;
    }

    public Long getInventoryCategoryId() 
    {
        return inventoryCategoryId;
    }
    public void setPricingMethodId(Long pricingMethodId) 
    {
        this.pricingMethodId = pricingMethodId;
    }

    public Long getPricingMethodId() 
    {
        return pricingMethodId;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setProductPurpose(String productPurpose) 
    {
        this.productPurpose = productPurpose;
    }

    public String getProductPurpose() 
    {
        return productPurpose;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setIsSupportMultipleUnits(Integer isSupportMultipleUnits) 
    {
        this.isSupportMultipleUnits = isSupportMultipleUnits;
    }

    public Integer getIsSupportMultipleUnits() 
    {
        return isSupportMultipleUnits;
    }
    public void setUnitId(Long unitId) 
    {
        this.unitId = unitId;
    }

    public Long getUnitId() 
    {
        return unitId;
    }
    public void setPurchaseUnitId(Long purchaseUnitId) 
    {
        this.purchaseUnitId = purchaseUnitId;
    }

    public Long getPurchaseUnitId() 
    {
        return purchaseUnitId;
    }
    public void setSalesUnitId(Long salesUnitId) 
    {
        this.salesUnitId = salesUnitId;
    }

    public Long getSalesUnitId() 
    {
        return salesUnitId;
    }
    public void setStockUnitId(Long stockUnitId) 
    {
        this.stockUnitId = stockUnitId;
    }

    public Long getStockUnitId() 
    {
        return stockUnitId;
    }
    public void setPurchasePrice(BigDecimal purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() 
    {
        return purchasePrice;
    }
    public void setSalesPrice(BigDecimal salesPrice) 
    {
        this.salesPrice = salesPrice;
    }

    public BigDecimal getSalesPrice() 
    {
        return salesPrice;
    }
    public void setCostPrice(BigDecimal costPrice) 
    {
        this.costPrice = costPrice;
    }

    public BigDecimal getCostPrice() 
    {
        return costPrice;
    }
    public void setMinStock(Long minStock) 
    {
        this.minStock = minStock;
    }

    public Long getMinStock() 
    {
        return minStock;
    }
    public void setMaxStock(Long maxStock) 
    {
        this.maxStock = maxStock;
    }

    public Long getMaxStock() 
    {
        return maxStock;
    }
    public void setSafetyStock(Long safetyStock) 
    {
        this.safetyStock = safetyStock;
    }

    public Long getSafetyStock() 
    {
        return safetyStock;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("inventoryName", getInventoryName())
            .append("inventoryNumber", getInventoryNumber())
            .append("specificationModel", getSpecificationModel())
            .append("inventoryTypeId", getInventoryTypeId())
            .append("inventoryCategoryId", getInventoryCategoryId())
            .append("pricingMethodId", getPricingMethodId())
            .append("status", getStatus())
            .append("productPurpose", getProductPurpose())
            .append("remarks", getRemarks())
            .append("isSupportMultipleUnits", getIsSupportMultipleUnits())
            .append("unitId", getUnitId())
            .append("purchaseUnitId", getPurchaseUnitId())
            .append("salesUnitId", getSalesUnitId())
            .append("stockUnitId", getStockUnitId())
            .append("purchasePrice", getPurchasePrice())
            .append("salesPrice", getSalesPrice())
            .append("costPrice", getCostPrice())
            .append("minStock", getMinStock())
            .append("maxStock", getMaxStock())
            .append("safetyStock", getSafetyStock())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
